<?php

namespace register\model;

require_once ("./register/model/userDAL.php");

class RegisterModel {

	private static $REGISTER = "LoginView::Register";
	private static $NEWUSERNAME = "LoginView::NewUserName";
	private static $NEWPASSWORD = "LoginView::NewPassWord";
	private static $REPEATNEWPASSWORD = "LoginView::RepeatNewPassWord";
	private static $BACKBUTTON = "LoginView::BackButton";
	private static $USERNAME = "LoginView::UserName";

	private $message = "";

	private $dal;

	public function __construct() {

		$this -> dal = new \register\model\userDAL();
		$_SESSION['message'] = "";

	}

	public function saveNewUserToDB($user, $password) {

		$this -> dal -> saveUserToDB($user, $password);
	}

	public function registerFailed() {
		$this -> dal -> getAllUsers();

		$username = $_POST[self::$NEWUSERNAME];
		$password = $_POST[self::$NEWPASSWORD];
		$passwordrepeat = $_POST[self::$REPEATNEWPASSWORD];
		
		if(isset($_POST[self::$NEWUSERNAME])) {
			if ($username == "" && $password == "") {
				$this -> message = "Användarnamnet har för få tecken. Minst 3 tecken<br>
									Lösenorden har för få tecken. Minst 6 tecken";
				return FALSE;
				}
			
			if (isset($username)) {

				if (!preg_match('/^[<a-zA-Z0-9]*$/', $username)) {
					$username = strip_tags($username);
					$this -> message = "Användarnamnet innehåller ogiltiga tecken";
					return FALSE;
				}

				if (strlen($username) > 3 && strlen($username) < 9) {

					if (!$this -> dal -> unavailableUsername($username)) {

						$this -> message = "Användarnamnet är redan upptaget";
						//$_SESSION['message'] = "Användarnamnet upptaget";
						return FALSE;
					}

				} else {
					$this -> message = "Användarnamnet har för få tecken. Minst 3 tecken<br>";
					return FALSE;
				}
			}

			if (isset($password) && isset($password)) {
				if ($password == $passwordrepeat && !$password == "") {

					if (strlen($password) >= 6 && strlen($password) <= 16) {
						$_SESSION['message'] = "Användare registrerad";
						$_POST[self::$USERNAME] = $username;
						return TRUE;
					} else {
						$this -> message = "Lösenorden har för få tecken. Minst 6 tecken";
						return FALSE;
					}
				} else {
					$this -> message = "Lösenorden stämmer inte överens";
					return FALSE;
				}
			} 


			}
			return FALSE;

		}


	public function setErrorMessage() {
		return $this -> message;

	}

}
